package me.firstapp.repository.weixin.kami.impl;
//package me.firstapp.repository.weixin.impl;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
//import org.springframework.stereotype.Repository;
//
//import me.firstapp.common.utils.Page;
//import me.firstapp.common.utils.StrUtils;
//import me.firstapp.module.weixin.kami.KaMi;
//import me.firstapp.repository.base.impl.EntityRepositoryImpl;
//import me.firstapp.repository.weixin.KaMiRepository;
//
//@Repository
//public class KaMiRepositoryImpl extends EntityRepositoryImpl<KaMi> implements KaMiRepository {
//
//	@Override
//	protected Class<KaMi> getPersistentClass() {
//		return KaMi.class;
//	}
//
//	@Override
//	public List<KaMi> findKaMiList(Long kaMiProductId, Integer status) {
//		StringBuilder sql = new StringBuilder(" FROM KaMi bean WHERE 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		sql.append(" AND bean.kaMiProductId = :kaMiProductId ");
//		parameters.put("kaMiProductId", kaMiProductId);
//
//		sql.append(" AND bean.status = :status ");
//		parameters.put("status", status);
//
//		sql.append(" AND bean.deleteStatus = :deleteStatus ");
//		parameters.put("deleteStatus", KaMi.DELETE_STATUS_NO);
//
//		List<KaMi> result = super.query(KaMi.class, sql.toString(), parameters);
//		return result;
//	}
//
//	@Override
//	public Page<KaMi> findKaMiPage(Long kaMiProductId, Integer pageNo, Integer pageSize,
//			Map<String, Object> searchParams, String sortParam, String sortType) {
//		StringBuilder sql = new StringBuilder(" FROM KaMi bean where 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		if (searchParams != null) {
//			Set<String> keys = searchParams.keySet();
//			for (String key : keys) {
//				Object value = searchParams.get(key);
//				if (value != null) {
//					if ("status".equals(key)) {
//						String _value = (String) value;
//						Integer status = Integer.valueOf(_value);
//						sql.append(" AND bean.status =:status ");
//						parameters.put("status", status);
//					} else {
//						sql.append(" AND bean." + key + " LIKE :" + key + " ");
//						parameters.put(key, "%" + value + "%");
//					}
//
//				}
//			}
//		}
//
//		sql.append(" AND bean.kaMiProductId = :kaMiProductId ");
//		parameters.put("kaMiProductId", kaMiProductId);
//
//		sql.append(" AND bean.deleteStatus = :deleteStatus ");
//		parameters.put("deleteStatus", KaMi.DELETE_STATUS_NO);
//
//		if (StrUtils.isNotNULL(sortParam) && StrUtils.isNotNULL(sortType)) {
//			sql.append(" ORDER BY " + sortParam + " " + sortType);
//		}
//
//		return super.queryForPage(KaMi.class, sql.toString(), parameters, pageNo, pageSize);
//	}
//
//	@Override
//	public KaMi findByAccountAndKey(Long kaMiProductId, String account, String key) {
//		StringBuilder sql = new StringBuilder(" FROM KaMi bean WHERE 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		sql.append(" AND bean.kaMiProductId = :kaMiProductId ");
//		parameters.put("kaMiProductId", kaMiProductId);
//
//		sql.append(" AND bean.account = :account ");
//		parameters.put("account", account);
//
//		sql.append(" AND bean.key = :key ");
//		parameters.put("key", key);
//
//		sql.append(" AND bean.deleteStatus = :deleteStatus ");
//		parameters.put("deleteStatus", KaMi.DELETE_STATUS_NO);
//
//		List<KaMi> result = super.query(KaMi.class, sql.toString(), parameters);
//		return result.isEmpty() ? null : result.get(0);
//	}
//
//}
